home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / QD3DStyle.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  10.4 KB  |  363 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DStyle.h                                                 **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Style types and routines                                  **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1997 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DStyle_h
  15. #define QD3DStyle_h
  16.  
  17. #include "QD3D.h"
  18.  
  19. #if defined(PRAGMA_ONCE) && PRAGMA_ONCE
  20.     #pragma once
  21. #endif  /*  PRAGMA_ONCE  */
  22.  
  23. #if defined(OS_MACINTOSH) && OS_MACINTOSH
  24.  
  25. #if defined(__xlc__) || defined(__XLC121__)
  26.     #pragma options enum=int
  27.     #pragma options align=power
  28. #elif defined(__MWERKS__)
  29.     #pragma enumsalwaysint on
  30.     #pragma options align=native
  31. #elif defined(__MRC__) || defined(__SC__)
  32.     #if __option(pack_enums)
  33.         #define PRAGMA_ENUM_RESET_QD3DSTYLE 1
  34.     #endif
  35.     #pragma options(!pack_enums)
  36.     #pragma options align=power
  37. #endif
  38.  
  39. #endif  /* OS_MACINTOSH */
  40.  
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif    /* __cplusplus */
  44.  
  45.  
  46. /******************************************************************************
  47.  **                                                                             **
  48.  **                            Style Base Class Routines                         **
  49.  **                                                                             **
  50.  *****************************************************************************/
  51.  
  52. QD3D_EXPORT TQ3ObjectType QD3D_CALL Q3Style_GetType(
  53.     TQ3StyleObject            style);
  54.  
  55. QD3D_EXPORT TQ3Status QD3D_CALL Q3Style_Submit(
  56.     TQ3StyleObject            style, 
  57.     TQ3ViewObject            view);
  58.  
  59.  
  60. /******************************************************************************
  61.  **                                                                             **
  62.  **                                 Subdivision                                 **
  63.  **                                                                             **
  64.  *****************************************************************************/
  65.  
  66. typedef enum TQ3SubdivisionMethod {
  67.     kQ3SubdivisionMethodConstant,
  68.     kQ3SubdivisionMethodWorldSpace,
  69.     kQ3SubdivisionMethodScreenSpace
  70. } TQ3SubdivisionMethod;
  71.  
  72.  
  73. typedef struct TQ3SubdivisionStyleData {
  74.     TQ3SubdivisionMethod            method;
  75.     float                            c1;
  76.     float                            c2;
  77. } TQ3SubdivisionStyleData;
  78.  
  79.  
  80. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3SubdivisionStyle_New(
  81.     const TQ3SubdivisionStyleData    *data);
  82.  
  83. QD3D_EXPORT TQ3Status QD3D_CALL Q3SubdivisionStyle_Submit(
  84.     const TQ3SubdivisionStyleData    *data,
  85.     TQ3ViewObject                    view);
  86.  
  87. QD3D_EXPORT TQ3Status QD3D_CALL Q3SubdivisionStyle_SetData(
  88.     TQ3StyleObject                    subdiv,
  89.     const TQ3SubdivisionStyleData    *data);
  90.  
  91. QD3D_EXPORT TQ3Status QD3D_CALL Q3SubdivisionStyle_GetData(
  92.     TQ3StyleObject                    subdiv,
  93.     TQ3SubdivisionStyleData            *data);
  94.  
  95.  
  96. /******************************************************************************
  97.  **                                                                             **
  98.  **                                Pick ID                                         **
  99.  **                                                                             **
  100.  *****************************************************************************/
  101.  
  102. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3PickIDStyle_New(
  103.     unsigned long            id);
  104.     
  105. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickIDStyle_Submit(
  106.     unsigned long            id,
  107.     TQ3ViewObject            view);
  108.  
  109. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickIDStyle_Get(
  110.     TQ3StyleObject            pickIDObject,
  111.     unsigned long            *id);
  112.  
  113. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickIDStyle_Set(
  114.     TQ3StyleObject            pickIDObject,
  115.     unsigned long            id);
  116.     
  117.     
  118. /******************************************************************************
  119.  **                                                                             **
  120.  **                                Pick Parts                                     **
  121.  **                                                                             **
  122.  *****************************************************************************/
  123.  
  124. typedef enum TQ3PickPartsMasks {
  125.     kQ3PickPartsObject        = 0,
  126.     kQ3PickPartsMaskFace    = 1 << 0,
  127.     kQ3PickPartsMaskEdge    = 1 << 1,
  128.     kQ3PickPartsMaskVertex    = 1 << 2
  129. } TQ3PickPartsMasks;
  130.  
  131. typedef unsigned long TQ3PickParts;
  132.  
  133. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3PickPartsStyle_New(
  134.     TQ3PickParts            parts);
  135.     
  136. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickPartsStyle_Submit(
  137.     TQ3PickParts            parts,
  138.     TQ3ViewObject            view);
  139.  
  140. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickPartsStyle_Get(
  141.     TQ3StyleObject            pickPartsObject,
  142.     TQ3PickParts            *parts);
  143.  
  144. QD3D_EXPORT TQ3Status QD3D_CALL Q3PickPartsStyle_Set(
  145.     TQ3StyleObject            pickPartsObject,
  146.     TQ3PickParts            parts);
  147.  
  148.  
  149. /******************************************************************************
  150.  **                                                                             **
  151.  **                            Receive Shadows                                     **
  152.  **                                                                             **
  153.  *****************************************************************************/
  154.  
  155. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3ReceiveShadowsStyle_New(
  156.     TQ3Boolean                receives);
  157.     
  158. QD3D_EXPORT TQ3Status QD3D_CALL Q3ReceiveShadowsStyle_Submit(
  159.     TQ3Boolean                receives,
  160.     TQ3ViewObject            view);
  161.  
  162. QD3D_EXPORT TQ3Status QD3D_CALL Q3ReceiveShadowsStyle_Get(
  163.     TQ3StyleObject            styleObject,
  164.     TQ3Boolean                *receives);
  165.  
  166. QD3D_EXPORT TQ3Status QD3D_CALL Q3ReceiveShadowsStyle_Set(
  167.     TQ3StyleObject            styleObject,
  168.     TQ3Boolean                receives);
  169.  
  170.  
  171. /******************************************************************************
  172.  **                                                                             **
  173.  **                            Fill Styles                                         **
  174.  **                                                                             **
  175.  *****************************************************************************/
  176.  
  177. typedef enum TQ3FillStyle {
  178.     kQ3FillStyleFilled,
  179.     kQ3FillStyleEdges,
  180.     kQ3FillStylePoints
  181. } TQ3FillStyle;
  182.  
  183.  
  184. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3FillStyle_New(
  185.     TQ3FillStyle             fillStyle);
  186.  
  187. QD3D_EXPORT TQ3Status QD3D_CALL Q3FillStyle_Submit(
  188.     TQ3FillStyle             fillStyle,
  189.     TQ3ViewObject             view);
  190.  
  191. QD3D_EXPORT TQ3Status QD3D_CALL Q3FillStyle_Get(
  192.     TQ3StyleObject            styleObject,
  193.     TQ3FillStyle            *fillStyle);
  194.  
  195. QD3D_EXPORT TQ3Status QD3D_CALL Q3FillStyle_Set(
  196.     TQ3StyleObject            styleObject,
  197.     TQ3FillStyle            fillStyle);
  198.     
  199.     
  200. /******************************************************************************
  201.  **                                                                             **
  202.  **                            Backfacing Styles                                 **
  203.  **                                                                             **
  204.  *****************************************************************************/
  205.  
  206. typedef enum TQ3BackfacingStyle {
  207.     kQ3BackfacingStyleBoth,
  208.     kQ3BackfacingStyleRemove,
  209.     kQ3BackfacingStyleFlip
  210. } TQ3BackfacingStyle;
  211.  
  212. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3BackfacingStyle_New(
  213.     TQ3BackfacingStyle        backfacingStyle);
  214.  
  215. QD3D_EXPORT TQ3Status QD3D_CALL Q3BackfacingStyle_Submit(
  216.     TQ3BackfacingStyle        backfacingStyle,
  217.     TQ3ViewObject            view);
  218.  
  219. QD3D_EXPORT TQ3Status QD3D_CALL Q3BackfacingStyle_Get(
  220.     TQ3StyleObject            backfacingObject,
  221.     TQ3BackfacingStyle        *backfacingStyle);
  222.  
  223. QD3D_EXPORT TQ3Status QD3D_CALL Q3BackfacingStyle_Set(
  224.     TQ3StyleObject            backfacingObject,
  225.     TQ3BackfacingStyle        backfacingStyle);
  226.  
  227.  
  228. /******************************************************************************
  229.  **                                                                             **
  230.  **                            Interpolation Types                                 **
  231.  **                                                                             **
  232.  *****************************************************************************/
  233.  
  234. typedef enum TQ3InterpolationStyle {
  235.     kQ3InterpolationStyleNone,
  236.     kQ3InterpolationStyleVertex,
  237.     kQ3InterpolationStylePixel
  238. } TQ3InterpolationStyle;
  239.  
  240. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3InterpolationStyle_New(
  241.     TQ3InterpolationStyle    interpolationStyle);
  242.  
  243. QD3D_EXPORT TQ3Status QD3D_CALL Q3InterpolationStyle_Submit(
  244.     TQ3InterpolationStyle     interpolationStyle,
  245.     TQ3ViewObject            view);
  246.  
  247. QD3D_EXPORT TQ3Status QD3D_CALL Q3InterpolationStyle_Get(
  248.     TQ3StyleObject            interpolationObject,
  249.     TQ3InterpolationStyle    *interpolationStyle);
  250.  
  251. QD3D_EXPORT TQ3Status QD3D_CALL Q3InterpolationStyle_Set(
  252.     TQ3StyleObject            interpolationObject,
  253.     TQ3InterpolationStyle    interpolationStyle);
  254.  
  255.  
  256. /******************************************************************************
  257.  **                                                                             **
  258.  **                                Highlight Style                                 **
  259.  **                                                                             **
  260.  *****************************************************************************/
  261.  
  262. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3HighlightStyle_New(
  263.     TQ3AttributeSet            highlightAttribute);
  264.     
  265. QD3D_EXPORT TQ3Status QD3D_CALL Q3HighlightStyle_Submit(
  266.     TQ3AttributeSet            highlightAttribute,
  267.     TQ3ViewObject            view);
  268.  
  269. QD3D_EXPORT TQ3Status QD3D_CALL Q3HighlightStyle_Get(
  270.     TQ3StyleObject            highlight,
  271.     TQ3AttributeSet            *highlightAttribute);
  272.  
  273. QD3D_EXPORT TQ3Status QD3D_CALL Q3HighlightStyle_Set(
  274.     TQ3StyleObject            highlight,
  275.     TQ3AttributeSet            highlightAttribute);
  276.  
  277.  
  278. /******************************************************************************
  279.  **                                                                             **
  280.  **                            FrontFacing Direction Styles                     **
  281.  **                                                                             **
  282.  *****************************************************************************/
  283.  
  284. typedef enum TQ3OrientationStyle {
  285.     kQ3OrientationStyleCounterClockwise,
  286.     kQ3OrientationStyleClockwise
  287. } TQ3OrientationStyle;
  288.  
  289. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3OrientationStyle_New(
  290.     TQ3OrientationStyle        frontFacingDirection);
  291.  
  292. QD3D_EXPORT TQ3Status QD3D_CALL Q3OrientationStyle_Submit(
  293.     TQ3OrientationStyle        frontFacingDirection,
  294.     TQ3ViewObject            view);
  295.  
  296. QD3D_EXPORT TQ3Status QD3D_CALL Q3OrientationStyle_Get(
  297.     TQ3StyleObject            frontFacingDirectionObject,
  298.     TQ3OrientationStyle        *frontFacingDirection);
  299.  
  300. QD3D_EXPORT TQ3Status QD3D_CALL Q3OrientationStyle_Set(
  301.     TQ3StyleObject            frontFacingDirectionObject,
  302.     TQ3OrientationStyle        frontFacingDirection);
  303.  
  304.  
  305. /******************************************************************************
  306.  **                                                                             **
  307.  **                                AntiAlias Style                                 **
  308.  **                                                                             **
  309.  *****************************************************************************/
  310.  
  311. typedef enum TQ3AntiAliasModeMasks {
  312.     kQ3AntiAliasModeMaskEdges    = 1 << 0,
  313.     kQ3AntiAliasModeMaskFilled    = 1 << 1
  314. } TQ3AntiAliasModeMasks;
  315.  
  316. typedef unsigned long TQ3AntiAliasMode;
  317.  
  318. typedef struct TQ3AntiAliasStyleData {
  319.     TQ3Switch                    state;
  320.     TQ3AntiAliasMode            mode;
  321.     float                        quality;
  322. } TQ3AntiAliasStyleData;
  323.  
  324. QD3D_EXPORT TQ3StyleObject QD3D_CALL Q3AntiAliasStyle_New(
  325.     const TQ3AntiAliasStyleData        *data);
  326.  
  327. QD3D_EXPORT TQ3Status QD3D_CALL Q3AntiAliasStyle_Submit(
  328.     const TQ3AntiAliasStyleData        *data,
  329.     TQ3ViewObject                    view);
  330.  
  331. QD3D_EXPORT TQ3Status QD3D_CALL Q3AntiAliasStyle_GetData(
  332.     TQ3StyleObject                    styleObject,
  333.     TQ3AntiAliasStyleData            *data);
  334.  
  335. QD3D_EXPORT TQ3Status QD3D_CALL Q3AntiAliasStyle_SetData(
  336.     TQ3StyleObject                    styleObject,
  337.     const TQ3AntiAliasStyleData        *data);
  338.  
  339.  
  340. #ifdef __cplusplus
  341. }
  342. #endif    /* __cplusplus */
  343.  
  344. #if defined(OS_MACINTOSH) && OS_MACINTOSH
  345.  
  346. #if defined(__xlc__) || defined(__XLC121__)
  347.     #pragma options enum=reset
  348.     #pragma options align=reset
  349. #elif defined(__MWERKS__)
  350.     #pragma enumsalwaysint reset
  351.     #pragma options align=reset
  352. #elif defined(__MRC__) || defined(__SC__)
  353.     #if PRAGMA_ENUM_RESET_QD3DSTYLE
  354.         #pragma options(pack_enums)
  355.         #undef PRAGMA_ENUM_RESET_QD3DSTYLE
  356.     #endif
  357.     #pragma options align=reset
  358. #endif
  359.  
  360. #endif  /* OS_MACINTOSH */
  361.  
  362. #endif  /*  QD3DStyle_h  */
  363.